Promise.resolve().then(() => {
  console.log("Promise1");
  setTimeout(() => {
    console.log("setTimeout2");
  }, 0);
});
setTimeout(() => {
  console.log("setTimeout1");
  Promise.resolve().then(() => {
    console.log("Promise2");
  });
}, 0);

// 宏任务 []
// 微任务 []  每次都会产生一个新的微任务队列

// Promise1  setTimeout1   Promise2  setTimeout2
// 每次执行宏任务的时候，都会在执行完毕后清空对应的微任务队列，再去取下一个宏任务来执行